package com.example.message.dto;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 通知发送数据传输对象
 */
public class MessageSendDTO {
    
    /**
     * 通知标题
     */
    private String title;
    
    /**
     * 通知内容
     */
    private String content;
    
    /**
     * 通知类型（1：系统通知，2：业务通知，3：公告，4：提醒）
     */
    private Integer messageType;
    
    /**
     * 优先级（1：低，2：中，3：高，4：紧急）
     */
    private Integer priority;
    
    /**
     * 发送方式（1：站内信，2：邮件，3：短信，4：微信，5：多方式）
     */
    private Integer sendMethod;
    
    /**
     * 目标类型（1：个人，2：角色，3：部门，4：岗位，5：全体）
     */
    private Integer targetType;
    
    /**
     * 目标ID列表（JSON格式，根据targetType确定具体含义）
     */
    private String targetIds;
    
    /**
     * 业务类型（用于业务关联）
     */
    private String businessType;
    
    /**
     * 业务ID（用于业务关联）
     */
    private String businessId;
    
    /**
     * 过期时间
     */
    private LocalDateTime expireTime;
    
    /**
     * 模板参数（用于模板变量替换）
     */
    private Map<String, Object> templateParams;
    
    // Getter and Setter methods
    public String getTitle() { return title; }
    public void setTitle(String title) { this.title = title; }
    
    public String getContent() { return content; }
    public void setContent(String content) { this.content = content; }
    
    public Integer getMessageType() { return messageType; }
    public void setMessageType(Integer messageType) { this.messageType = messageType; }
    
    public Integer getPriority() { return priority; }
    public void setPriority(Integer priority) { this.priority = priority; }
    
    public Integer getSendMethod() { return sendMethod; }
    public void setSendMethod(Integer sendMethod) { this.sendMethod = sendMethod; }
    
    public Integer getTargetType() { return targetType; }
    public void setTargetType(Integer targetType) { this.targetType = targetType; }
    
    public String getTargetIds() { return targetIds; }
    public void setTargetIds(String targetIds) { this.targetIds = targetIds; }
    
    public String getBusinessType() { return businessType; }
    public void setBusinessType(String businessType) { this.businessType = businessType; }
    
    public String getBusinessId() { return businessId; }
    public void setBusinessId(String businessId) { this.businessId = businessId; }
    
    public LocalDateTime getExpireTime() { return expireTime; }
    public void setExpireTime(LocalDateTime expireTime) { this.expireTime = expireTime; }
    
    public Map<String, Object> getTemplateParams() { return templateParams; }
    public void setTemplateParams(Map<String, Object> templateParams) { this.templateParams = templateParams; }
}